package cn.tedu.tmall.front.mall.service;

import cn.tedu.tmall.common.consts.data.MallConsts;
import cn.tedu.tmall.common.pojo.vo.PageData;
import cn.tedu.tmall.front.mall.pojo.vo.CategoryListItemVO;
import cn.tedu.tmall.front.mall.pojo.vo.CategoryTreeItemVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 处理类别业务的接口
 *
 * @author java@tedu.cn
 * @version 3.0
 */
@Transactional
public interface ICategoryService extends MallConsts {

    /**
     * 获取所有类别形成的"树"
     *
     * @return 所有类别形成的"树"
     */
    List<CategoryTreeItemVO> listTree();

    /**
     * 根据父级类别查询其子级类别列表，将使用默认的每页记录数
     *
     * @param parentId 父级类别的ID
     * @param pageNum  页码
     * @return 类别列表
     */
    PageData<CategoryListItemVO> listByParent(Long parentId, Integer pageNum);

    /**
     * 根据父级类别查询其子级类别列表
     *
     * @param parentId 父级类别的ID
     * @param pageNum  页码
     * @param pageSize 每页记录数
     * @return 类别列表
     */
    PageData<CategoryListItemVO> listByParent(Long parentId, Integer pageNum, Integer pageSize);

}
